class Solution {
public:
    ListNode* rotateRight(ListNode* head, int k) {
        int i=0,j=0;
        if(head==NULL||head->next==nullptr) return head;
        ListNode* h=head,*r=head,*t=head;
        while(h!=nullptr){
          h=h->next;
          j++;
        }
          k=j-k%j;
          h=head;
        // while(i<k){
        //   while(r->next!=nullptr){
        //     t=r;
        //     r=r->next;
        //   }
        //   t->next=NULL;
        //   r->next=h;
        //   h=r;
        //   head=r;
        //   i++;
        // }
        // return head;
          while(r->next!=nullptr){
            r=r->next;
          }
          r->next=head;
        while(--k>0){
          h=h->next;
        }
        head=h->next;
        h->next=nullptr;
        return head;
    }
};
